<?php

require_once 'Basic.php';

class ModelList {
  
  private $list;
  private $dbFail;
  
  public function __construct() {
    $this->list = new Report();
    $this->dbFail = false;
    $this->buildList();
  }
 
  private function buildList() {
    $db = new DBUtils();
    
    try {
      $db->connect();
      $db->runQuery("select * from DadosModelo");
      for($item = $db->getItem(); $item !== null; $item = $db->getItem()) {
        $listItem = new ReportItem("-", $item->idModelo);
        $listItem->addLine("Marca", $item->marca);
        $listItem->addLine("Nome do Modelo", $item->nomeModelo);
        $listItem->addLine("Categoria", $item->categoria);
        $listItem->addLine("Preço da Diária", adjustMoney($item->precoDiaria));
        $listItem->addLine("Preço por KM rodado", adjustMoney($item->precoKm));
        $listItem->addLine("Tipo", $item->nomeTipoModelo);
        $listItem->addLine("Carga", $item->carga);
        $listItem->addLine("Lotação", $item->lotacao);
  
        $this->list->addItem($listItem);
      }
      $db->close(true);
    }
    catch(DBError $e) {
      $db->close();
      $this->dbFail = true;
      logMessage($e, "ModelList");
    }
  }
 
  public function getHtml() {
    if($this->dbFail) {
      return "<p>Falha ao acessar o banco de dados. O erro foi reportado.</p>";
    }
    else {
      return $this->list->getHtml();
    }
  }

}

mustBeEmployee();
$list = new ModelList();
$page = new Page("Listagem de Modelos de Ve&iacute;culos");
$page->addContent($list->getHtml());
echo $page->getHtml();